/*
算法2-11 大整数相乘运算
分数 20
作者 陈越
单位 浙江大学

请编写程序，求两个不超过 1000 位的大整数的乘积。
输入格式：

输入在两行中分别给出两个整数，保证不超过 1000 位。
输出格式：

在一行中输出两个整数的乘积。但如果乘积超过了 1000 位，则仅输出 错误：位数超限。。
输入样例 1：

123456789012345
987654321098765

输出样例 1：

121932631137021071359549253925

输入样例 2：

-1122375689
4998765432012345

输出样例 2：

-5610492795904238375880705
*/

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

#define MAX_LEN 1000

using namespace std;

string multiplyStrings(const string &a, const string &b) {
    int n = a.size(), m = b.size();
    vector<int> product(n + m, 0);
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < m; ++j) {
            product[i + j] += (a[n - 1 - i] - '0') * (b[m - 1 - j] - '0');
        }
    }
    for (int i = 0; i < product.size() - 1; ++i) {
        product[i + 1] += product[i] / 10;
        product[i] %= 10;
    }
    while (product.size() > 1 && product.back() == 0) {
        product.pop_back();
    }
    if (product.size() > MAX_LEN) {
        return "错误：位数超限。";
    }
    string result;
    for (int i = product.size() - 1; i >= 0; --i) {
        result += to_string(product[i]);
    }
    return result;
}

int main() {
    string a, b;
    cin >> a >> b;

    bool negA = a[0] == '-';
    bool negB = b[0] == '-';
    if (negA) a = a.substr(1);
    if (negB) b = b.substr(1);

    string result = multiplyStrings(a, b);
    if (negA != negB && result != "错误：位数超限。") {
        result = "-" + result;
    }

    cout << result << endl;

    return 0;
}